///////////////////////////////////////////////////////////////////////////
/// File: FileSafe.cs
/// Description: 
///    -  本文件是由代码生成工具自动生成的，如非必要，不要修改，若有新增内容，新建一个partial类进行新增。
///    - CRUD授权过程：1. C,U操作要检查输入的数据是否符合授权。
///                    2. R操作要先读出目标数据，然后检查数据是否符合授权。
///                    3. D操作要先进行R操作过滤，判断输入数据是否符合授权，然后只执行符合授权的删除，忽略不符合授权的操作。
///                       为了保存程序的简洁和数据库执行效率，R过滤可以在Sql中完成。
///    业务安全层
/// Copyright© 2011 Mz
/// History:
///     2011-10-3 13:47:24    My.GenCode    Original Version
///////////////////////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.Security.Permissions;
using System.Security;
using System.Threading;
using MAF.Common;
using My.Blog.Domain.Entities;
using My.Blog.Domain.Interfaces;

namespace My.Blog.Business.Security
{
    public partial class FileSafe : IFile
    {
        // 构造函数
        public FileSafe(IFile thisObj)
        {
            _This = thisObj;
        }
        
        #region IFile成员
        
        /// <summary>
        /// CreateFile
        /// </summary>
        public void CreateFile(FileInfo info,System.IO.Stream stream )
        {
            // 权限判断
            //if( Thread.CurrentPrincipal.IsInRole("") )
            //{   ;   }
            //else
            //{    throw new SecurityException("权限不足");   }
            
            _This.CreateFile(info,stream);
        }
        
        /// <summary>
        /// UpdateFile
        /// </summary>
        public int UpdateFile(FileInfo info )
        {
            // 权限判断
            if( Thread.CurrentPrincipal.IsInRole("") )
            {   ;   }
            else
            {    throw new SecurityException("权限不足");   }
            
            return _This.UpdateFile(info);
        }
        
        /// <summary>
        /// DeleteFiles
        /// </summary>
        public int DeleteFiles(FileInfo info )
        {
            // 权限判断
            if( Thread.CurrentPrincipal.IsInRole("") )
            {   ;   }
            else
            {    throw new SecurityException("权限不足");   }
            
            return _This.DeleteFiles(info);
        }
        
        /// <summary>
        /// ReadFileByConditions
        /// </summary>
        public FileInfo ReadFileByConditions(FileInfo info )
        {
            // 权限判断
            if( Thread.CurrentPrincipal.IsInRole("") )
            {   ;   }
            else
            {    throw new SecurityException("权限不足");   }
            
            info = _This.ReadFileByConditions(info);
            return info;
        }
        
        /// <summary>
        /// ReadFilesByConditions
        /// </summary>
        public IList<FileInfo> ReadFilesByConditions(FileInfo info, int pageSize, int currentPage )
        {
            // 权限判断
            if( Thread.CurrentPrincipal.IsInRole("") )
            {   ;   }
            else
            {    throw new SecurityException("权限不足");   }
            
            return _This.ReadFilesByConditions(info,pageSize,currentPage);
        }
        
        /// <summary>
        /// ReadFilesCountByConditions
        /// </summary>
        public int ReadFilesCountByConditions( FileInfo info )
        {
            return _This.ReadFilesCountByConditions( info );
        }
        
        #endregion 
        
        #region Private Member
        private IFile _This = null;
        #endregion
             
    }
}
    
